/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * 
 * @param array int整型一维数组 
 * @return int整型一维数组
 */
 function reOrderArrayTwo( array ) {
  // write code here
  // 获取数组长度
  var n = array.length
  // 定义两个指针 分别指向数组的首元素和数组的末尾元素
  var left = 0
  var right = n-1
  while(left < right){
    // 整个过程是在左指针的下标 比 右指针的下标 来的小的时候进行的
    while(left < right && array[left]&1){
      // 如果左指针是一个奇数 左指针右移一位
        // 奇数&1 === 1
        left += 1
      }
    while(left < right && array[right]&1 !== 1){
        // 偶数&1 === 0 右指针是偶数 右指针向右移一位
        right -= 1
      }
    // 循环结束之后 左指针指向偶数 右指针指向奇数
    // 左右指针的数字进行交换
    var temp = array[left]
    array[left] = array[right]
    array[right] = temp
  }
  // 最后返回结果数组
  return array
}
module.exports = {
  reOrderArrayTwo : reOrderArrayTwo
};